/*--------------------------------------------------------------------------
  Project::MONDIALI SCI ALPINISMO
  Package::States
  Class::OptionsState
  File OptionsState.h
  --------------------------------------------------------------------------
  * METHODS AND CLASS PARAMETERS


  --------------------------------------------------------------------------
  * FUNCTIONS DESCRIPTION
  
	...

  --------------------------------------------------------------------------
  * COPYRIGHT

  --------------------------------------------------------------------------
  * INFO ABOUT AUTHOR AND VERSIONS
  Author:	Tino Giorgio	Data: 
  Rev1:			Data:

  --------------------------------------------------------------------------
  * E-MAIL & CONTACTS

  GIORGIO TINO:	tinoshi@libero.it
	           	shapeofangels@hotmail.com
	            giorgio.tino@studenti.polito.it

  --------------------------------------------------------------------------*/

#if !defined(OPTIONSSTATE_H)
#define OPTIONSSTATE_H

/* Application Includes*/
#include "State.h"

/* DEFINES */
class BackGroundImage;
class ImageButton;
class Keyboard;
class Mouse;

class OptionsState : public State
{
public:
	OptionsState();
	OptionsState(State* oldState);
	virtual ~OptionsState();
	
	// class 'callbacks' (they aren't callbacks really...)
	void load(const char* filename);
    void display(void);
    void resize(int w, int h);
    void keyUp(unsigned char key, int x, int y);
    void keyDown(unsigned char key, int x, int y);
    void specialUp(int key, int x, int y);
    void specialDown(int key, int x, int y);
    void motion(int newx, int newy); 
    void passive(int newx, int newy);
    void mouse(int button, int state, int mouseX, int mouseY);
    State* idle(void);
    void reset();
 
private:
    BackGroundImage *backgroundImage;
    ImageButton *backButton;
    
    Keyboard *kb;
    Mouse *ms;
    
    State* nextState;
    State* oldState;
};

#endif // !defined(OPTIONSSTATE_H_)
